java - JSON异常 : Names must be strings
全部标签 我使用Sinatra创建了一个简单的API,它根据提交的JSON数据发送电子邮件。我可以创建一个表单,通过表单提交JSON数据,然后访问参数以获取电子邮件的收件人、主题和正文。但是,我正在尝试使用cURL来测试API,但似乎无法正常工作。我假设我在cURL请求中的格式被破坏了。下面是我尝试过的cURL请求以及params的输出以及尝试使用JSONgem解析params。我倾向于使用一个巨大的键来获取参数,该键是我的JSON数据字符串,值为nil。我尝试添加Content-Type:application/json,当我这样做时,params为空。curl-XPOST-H"Accept:
在设法通过C#将数据加载到我的Rails服务器之后(查看here了解我在说什么),我现在尝试将一个文件连同其他数据一起上传到同一服务器。在Ruby中,我可以用代码做到这一点:require'HTTMultiParty'classReceiptCreateincludeHTTMultiParty#Logtofile#debug_outputFile.new("httparty1.log","w+")base_uri"localhost:3000"format:jsonheaders"Accept"=>"application/json"definitializeenddefpost(ma
基本上,我有一个属于:companies的对象,并且具有:company_id属性。当我呈现json:@coupons时,JSON是否可能包含其所有者的属性而不是company_id? 最佳答案 你也许可以做一些类似render:json=>@coupons.to_json(:include=>:company)的事情,至少它似乎在我最初的rails2.3测试中有效.8.答案已编辑为使用:include=>:company而不是:include=>:companies 关于ruby-on
给定一个任意的mongoid文档,我如何将其转换为JSON并包含任何嵌入式结构,而不是在我的to_json语句中特别包含这些结构。例如:#!/usr/bin/envrubyrequire'mongoid'require'json'require'pp'classDocincludeMongoid::DocumentincludeMongoid::Timestampsfield:doc_specific_info,type:Stringembeds_many:personsendclassPersonincludeMongoid::Documentfield:role,type:Stri
我有一个RubyonRails应用程序,其中一个模型的验证失败。对于此验证可能失败的地方,代码库有不同的入口点。我有兴趣弄清楚它是从哪里来的。由于这是一个简单的验证方法,因此不涉及任何异常,我只是从方法中返回false并且保存失败。目前是否还可以记录回溯以查明此验证源自哪个服务/路由,以便我可以查看是什么导致此对象的状态发生更改以使其验证失败? 最佳答案 你可以试试caller():deffoo2putscallerenddeffoofoo2#line5endfoo#line7结果:test.rb:5:in`foo'test.rb:
是否可以强制Rails动态查找器在找不到结果时抛出ActiveRecord::RecordNotFound异常而不是返回nil?例如,如果名称为“Nuka–Cola”的饮料不存在:@not_found=Beverage.find_by_name('Nuka–Cola')而不是拥有@not_found==nil可以吗.find_by_name('Nuka–Cola')方法调用抛出ActiveRecord::RecordNotFound异常?或者我是否必须检查nil并手动抛出异常? 最佳答案 使用bang版本。@not_found=Be
我在Windows上使用带有DevKit的Ruby1.9.3(在Win764位上都是32位)。现在我尝试安装rails,但从bundle中得到一个错误。如果我尝试运行(包在提示什么)geminstalljson我收到以下错误消息:D:\RubyTest>geminstalljsonTemporarilyenhancingPATHtoincludeDevKit...Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingjson:ERROR:Failedtobuildgemnativeextension.D:
我正在尝试格式化{"key"=>"value"}以将其转换为:{"key":"value"}用于写入json文件。现在我正在做:hash={"key"=>"value"}putshash.to_json.gsub('{','{\n\t')开始。这输出{\n\t"key":"value"}为什么我不能换行? 最佳答案 为漂亮的东西欢呼,为避免正则表达式欢呼!使用内置的JSON.pretty_generate方法require'json'putsJSON.pretty_generatehash,options耶!选项如下:indent:
此代码段抛出异常:x=niljsoned=x.to_jsonputs'x.to_json='+jsoned.inspectputs'back='+JSON.parse(jsoned).inspectC:/ruby/lib/ruby/1.9.1/json/common.rb:146:in`parse':706:unexpectedtokenat'null'(JSON::ParserError)x.to_json="null"fromC:/ruby/lib/ruby/1.9.1/json/common.rb:146:in`parse'fromC:/dev/prototyping/appox
我编写的脚本在启动时运行,需要设置环境变量,但是Ruby的Exceptions,是最好的?我使用了LoadError,我只是想尽可能具有描述性并遵循适当的约定。其次,除了检查环境变量的长度外,我找不到其他方法来查看是否设置了环境变量,但这似乎不太优雅。beginraiseLoadErrorifENV['FOO'].to_s.length==0system"openhttp://example.com/"+ENV['FOO']rescueException=>eputs"=>#{e}FOOenvironmentvariablenotset"end 最佳答案